0:00
0:00

Noticias

Robots Didácticos

Robots Didácticos

Robótica, Automatización, control industrial, microcontroladores, electrónica digital
  • Control de relés por enlace de 2,4 GHz – módulos NRF24L01 (Domótica 4)
    La función de este artículo es dar ejemplos de comunicación inalámbrica entre dos placas Arduino, utilizando el módulo transceptor basado en el chip NRF24L01. En la imagen se observa dos formatos de módulo transceptor, ambos con el chip NRF24L01. Este chip utiliza la banda de 2,4 GHz y puede operar con velocidades de transmisión de […]
  • Control de relés con control remoto IR: Domótica (3)
    En este ejemplo probamos el sistema de encendido de lámparas y equipos eléctricos conectados al voltaje de red manejado por un control remoto estándar (IR = Infrarrojo). Los comandaremos con teclas elegidas del control remoto, que primero identificaremos con un simple programa en Arduino. Si usted desea leer con más detalle sobre control remoto con […]
  • Control con relés por interfaz serie: Domótica (2)
    En este ejemplo haremos un sistema de encendido lámparas y equipos eléctricos que funcionan con voltaje de red, y los controlaremos con caracteres enviados por línea serie a través del Monitor Serie del IDE de Arduino. Si usted desea leer con más detalle sobre la comunicación serie, le recomendamos el artículo ¿Qué es la comunicación […]
  • Módulos de relé y Arduino: Domótica (1)
    En este artículo ofrecemos información para controlar dispositivos que funcionan con el voltaje de red usando un módulo de relé. Al final de este trabajo usted debería poder controlar cualquier dispositivo eléctrico con un microcontrolador como el Arduino. Módulo de dos relés Un relé es un interruptor mecánico operado eléctricamente que se puede encender o […]
  • Pez robot se mueve alimentado con “sangre” falsa
    La historia comienza a centenares de metros de altura con las aves migratorias, y termina con un pez robótico nadando en el agua debajo. Para prepararse para sus viajes, las aves engordan mucho, hasta casi duplicar su peso, lo que las convierte en baterías emplumadas. Queman esa reserva de energía para impulsar sus alas a […]

Programación Scratch para Niños

Programación Scratch para niños paso a paso
  • Scratch
    SCRATCH es un lenguaje de programación desarrollado por MIT diseñado para niños con el objetivo de enseñarles conceptos de programación a una edad temprana y que así puedan desarrollar sus habilidades creativas, inventando sus propias historias, animaciones, música, juegos y más. Lo más divertido de aprender programación con SCRATCH, es que no es necesario que […]
Aprendiendo Arduino

Aprendiendo Arduino

Aprendiendo a manejar Arduino en profundidad
  • Grafana y Arduino
    Grafana es un software libre basado en licencia de Apache 2.0, que permite la visualización y el formato de datos métricos. Permite crear cuadros de mando y gráficos a partir de múltiples fuentes, incluidas bases de datos de series de tiempo como Graphite, InfluxDB y OpenTSDB. Originalmente comenzó como un componente de Kibana y que […]
  • API REST
    Las API REST se han convertido en una herramienta muy importante para los desarrollos con IoT al permitir conectar servicios entre sí. Vamos a explicar qué son exactamente. La interfaz de programación de aplicaciones, conocida también por la sigla API, en inglés, application programming interface, es un conjunto de subrutinas, funciones y procedimientos (o métodos, […]
  • Instalación Software Raspberry Pi
    Instalar servidor LAMP El acrónimo LAMP está compuesto por las iniciales de sus cuatro componentes: Linux, Apache, MySQL y PHP. Estos forman la infraestructura en el servidor, que hace posible la creación y el alojamiento de páginas web dinámicas. Los componentes individuales se acumulan unos sobre otros, por lo que esta plataforma también recibe el […]
  • Gateways IoT
    Un Gateway IoT es un dispositivo físico o un programa de software que sirve como punto de conexión entre la nube y los controladores, sensores y dispositivos inteligentes. Todos los datos que se mueven a la nube, o viceversa, pasan por el gateway, que puede ser un dispositivo de hardware dedicado o un programa de […]
  • Conectividad IoT
    IoT es conectar dispositivos a la Internet, para ello necesito una infraestructura de conexión y para ello disponemos de muchos tipos de conectividades que hay que conocer y saber cual es la más idónea en cada caso. Una vez seleccionada la conectividad más adecuada para nuestro proyecto/aplicación, debemos buscar el HW IoT que disponga de […]

Programamos

Videojuegos y 'apps'
  • Llega CSEdWeek 2019, la semana de la enseñanza de la informática
    Como cada año, la segunda semana de diciembre se celebra la Computer Science Education Week, la semana de la enseñanza de la informática, que este año transcurrirá del 9 al 15 de diciembre. La iniciativa más llamativa de este movimiento es, sin duda, la llamada "La hora del código", en cuyo marco se organizan miles [...]
  • ¿Te gustan los problemas complejos y toleras el riesgo? ¡Dedícate a la inteligencia artificial!
    Este artículo es una traducción y un resumen de la pieza de opinión publicada por Reid Simmons -director del grado en Inteligencia Artificial en la Universidad Carnegie Mellon- en el blog de CSTA. Los estudiantes que consideran una carrera en inteligencia artificial (IA) deben preguntarse: ¿Soy un primer pingüino? El primer pingüino fue un premio que [...]
  • Prácticas de redes y comunicaciones programando micro:bits
    Ya sabíamos que las placas micro:bit son un recurso estupendo para aulas de primaria y secundaria, y que resultan ideales para hacer prácticas relacionadas con la internet de las cosas. Lo que no sabíamos, y tenemos que agradecer al gran Pedro de las Heras por enseñárnoslo, es que también son un gran recurso para realizar prácticas [...]
  • ¿De verdad es posible enseñar inteligencia artificial en colegios e institutos?
    En Programamos venimos escribiendo sobre la necesidad de que la inteligencia artificial se trabaje en la escuela desde hace varios años, así que el artículo que el grupo de investigación KGBL3 acaba de publicar en el XXI Simposio Internacional de Informática Educativa, celebrado esta pasada semana en Portugal, es un gran espaldarazo a esta visión. El artículo, [...]

"ubuntu" - Google News

Google News

Planet Ubuntu

Planet Ubuntu - http://planet.ubuntu.com/
  • Ubuntu Blog: How to build ROS 2 Eloquent Snaps
    The end of 2019 brings about the latest ROS 2 release – Eloquent Elusor. Despite an ever growing set of features and some changes throughout the ecosystem, packaging with snaps is as easy as always. Let’s go through a quick example! Prerequisites You’ll need two tools: “snapcraft,” the program that builds snaps, and “multipass,” the VM management tool that is used by snapcraft to conduct snap builds without cluttering your development machine. You can get both of these from the snap store. At the time of this writing, the latest stable release of snapcraft is version 3.8. Until the next release comes out, in order to build Eloquent snaps, you’ll need to grab it from edge. $ snap install snapcraft --edge --classic If you already have snapcraft stable installed, you can change to edge using: $ snap refresh snapcraft --edge Multipass is grabbed the same way, requiring the --beta flag since the version at the time of writing is 0.9.0 $ snap install multipass --classic --beta Getting Started Create the snapcraft.yaml First of all, create a new workspace directory and add a snapcraft.yaml. ~$ mkdir eloquent-snap ~$ cd eloquent-snap/ ~/eloquent-snap$ snapcraft init Created snapcraft.yaml. Go to https://docs.snapcraft.io/the-snapcraft-format/8337 for more information about the snapcraft.yaml format. Open snap/snapcraft.yaml, and make the following changes: name: eloquent-talker-listener-arnatious version: "0.1" summary: Eloquent ROS2 Example description: | A ROS2 workspace containing a talker and a listener. grade: devel confinement: strict base: core18 parts: colcon-part: plugin: colcon source: https://github.com/ros2/demos.git source-branch: eloquent colcon-rosdistro: eloquent colcon-source-space: demo_nodes_cpp build-packages: [make, gcc, g++] stage-packages: [ros-eloquent-ros2launch] apps: eloquent-talker-listener-arnatious: command: opt/ros/eloquent/bin/ros2 launch demo_nodes_cpp talker_listener.launch.py plugs: [network, network-bind] Let’s take an in depth look at this manifest. name: eloquent-talker-listener version: "0.1" summary: Eloquent ROS2 Example description: | A ROS2 workspace containing a talker and a listener. This is the metadata any snap requires. The only caveat to this section is that the name must be unique on the snap store. Appending your developer name to the snap is an option to get around this (like I did). grade: devel confinement: strict base: core18 grade should be either stable or devel, with devel locking out the ability to publish to the “stable” and “candidate” channels. confinement can be strict, devmode, or classic. These are documented in detail on snapcraft.io, but in short: strict enforces tight confinement, restricting access to the system for security; devmode allows full access without any restriction but logs all accesses that strict would prevent; classic is unconfined, without its own private namespace or other security features. Generally, you should always target “strict” confinement unless there’s specific features that confinement will prevent. “Classic” snaps, like snapcraft itself or text editors like Visual Studio Code, have no containment and run without protection. Classic snaps need manual approval. The base keyword specifies the special snap providing things like a minimal set of core libraries for our snap’s runtime environment. We’re just using the “core18” snap, which bundles a minimal rootfs based on Ubuntu Bionic (18.04). parts: colcon-part: plugin: colcon source: https://github.com/ros2/demos.git source-branch: eloquent colcon-rosdistro: eloquent colcon-source-space: demo_nodes_cpp build-packages: [make, gcc, g++] stage-packages: [ros-eloquent-ros2launch] Snapcraft builds packages piecemeal, in small parts that are combined together. These are reflected by the part entries in the snapcraft.yaml. colcon-part is specified here as pulling the source code from a remote Github repository, though it can just as easily pull source code from a local directory or any source control system. The colcon plugin is used here to build the package, with the colcon-rosdistro argument specified as eloquent, the colcon-source-space specified as the demo_nodes_cpp directory containing just the talker/listener package we care about. We specify the packages that provide the commands we need to build the ROS nodes under build-packages. stage-packages contains ros2launch, as we’ll need the launch verb it provides as part of the entry point to our snap. apps: eloquent-talker-listener-arnatious: command: opt/ros/eloquent/bin/ros2 launch demo_nodes_cpp talker_listener.launch.py plugs: [network, network-bind] We need to express how users will interact with this package. Since we’re packaging ~our~ project, we want the snap to expose our project’s verbs. We define these user interactions as “apps” in the apps” section. In general, these verbs are invoked using <snap-name>.<app>. An entry in apps with the same name as the snap, like “eloquent-talker-listener-arnatious” above, can be invoked with just the snap name. Calling this app invokes the script in the command field, in this case roslaunch-ing the talker/listener system out of the demo_nodes_cpp package. Lastly, we specify the interfaces the snap needs access to outside of confinement – in this case network and network-bind. This allows the snap to access the network and be accessed from the network, respectively. You can read more about interfaces on the snapcraft site. Build the Snap Now that we’ve defined the snapcraft.yaml, we can build the snap itself. Make sure you’re in the correct directory (above the “snap/” directory containing the “snapcraft.yaml”) and invoke “snapcraft.” ~$ cd eloquent-snap ~/eloquent-snap$ snapcraft <omitted for brevity> Snapped colcon-talker-listener-arnatious_0.1_amd64.snap If you neglected to install multipass earlier, snapcraft may prompt you to do so. The build process may take several minutes. During that time, the colcon plugin will install rosdep and use it to determine the dependencies specified in the package.xml of the packages, fetching and unpacking them into your snap. At the end, the result is squashed into a .snap file. Test the Snap To install the snap we just built before publishing it, we run ~/eloquent-snap$ sudo snap install --dangerous eloquent-talker-listener-arnatious_0.1_amd64.snap eloquent-talker-listener-arnatious 0.1 installed The --dangerous flag is required to install snaps from locations other than the store. The snapd daemon responsible for running snaps requires any snap to be cryptographically verified from the snap store, unless the --dangerous flag is used. Finally, we invoke the snap: $ eloquent-talker-listener-arnatious [INFO] [launch]: All log files can be found below /home/arnatious/snap/eloquent-talker-listener-arnatious/x1/.ros/log/2019-12-11-07-56-04-973199-arnatious-ubuntu-1910 [INFO] [launch]: Default logging verbosity is set to INFO [INFO] [talker-1]: process started with pid [28330] [INFO] [listener-2]: process started with pid [28331] [talker-1] [INFO] [talker]: Publishing: 'Hello World: 1' [listener-2] [INFO] [listener]: I heard: [Hello World: 1] [talker-1] [INFO] [talker]: Publishing: 'Hello World: 2' [listener-2] [INFO] [listener]: I heard: [Hello World: 2] [talker-1] [INFO] [talker]: Publishing: 'Hello World: 3' [listener-2] [INFO] [listener]: I heard: [Hello World: 3] … The snap runs without issue on the machine, regardless of linux distro or whether ROS is on the machine. You can now push to the the snap store – where anyone running snapd can install and run it. I hope this gives you a good look at how to build ROS 2 Eloquent snaps! Feel free to ask questions on the Snapcraft forums or on the ROS Forums.
  • Ubuntu Blog: Building a Rust snap by Example
    There’s plenty of official documentation which details how to create snaps. We live in the copy/paste generation though. So lets walk through a real-world example you can use as a template, or selectively yoink sections from. This is the first in a series of posts which break down how to build snaps based on published works in the Snap Store. This week we’re looking at “System Syzygy” , a graphical puzzle game written using Rust and SDL2. Metadata Let’s start with the easy part, the human-readable bit. Here we set out the name of the snap as it would appear in the Snap Store web user interface, and on the command line with snap info syzygy. As the summary is displayed in the command line output of snap info it’s worth keeping it short and sweet. The description can be more meaty, covering details about the application, command line options, keyboard shortcuts and links to help. Once published however, the summary and description can also be maintained via the Snap Store listing page, but this is a good starting point. name: syzygy summary: System Syzygy - A narrative meta-puzzle game description: | System Syzygy is a puzzle game, in the style of Cliff Johnson's The Fool's Errand and 3 in Three, and of Andrew Plotkin's System's Twilight.. The version number can often be seen either with a version: or version-script: line. However we have used adopt-info to inform snapcraft that the version will be set by a part, further down the yaml. The part name is specified. We’ll come back to this later. adopt-info: syzygy Base The base indicates which runtime this snap should be run against. When the syzygy snap is installed on a system, the core18 base snap will be automatically installed too. Essentially this determines the version of libc the application was built against. The core18 base snap is built from Ubuntu 18.04 (LTS) and as such, we should build this snap in a VM or container running the same release. Other (older) bases are available and in the future newer bases will be made, but today, this is an appropriate base to build with. base: core18 Architectures Both the snapcraft build service and launchpad have the capability to build snaps for numerous architectures. However, not all applications may successfully build or run on all of them. Sometimes the dependencies or build tools aren’t available for every CPU architecture, or perhaps the tool-chain is not supported on anything but mainstream architectures. In the case of System Syzygy, it only builds for 64-bit and 32-bit Intel CPU architectures. Specifying the supported architectures here means the build systems won’t waste time attempting to compile the game on CPUs we know it won’t succeed on. architectures: - build-on: [amd64,i386] Confinement System Syzygy is a simple, non-networked game. It needs access to take input from the keyboard and mouse, display things on the screen, and play back audio. As such it can be strictly confined. confinement: strict Grade Grade is an indicator of the quality of this snap. Initially we might set this to devel while it’s in development. However, in order to be published in the stable or candidate channels in the store, we should set this to stable. Only applications with a stable grade are permitted in the stable and candidate channels. grade: stable Parts Parts are the meat of the snap. Here’s where we outline what actually goes inside the package. As System Syzygy is a game written in Rust, and is hosted externally on github, we can list the plugin and the url to the source repository here. parts: syzygy: plugin: rust source: https://github.com/mdsteele/syzygy.gitPartsparts: syzygy: plugin: rust source: https://github.com/mdsteele/syzygy.git override-pull Many applications are not written with relocatability in mind. The override-pull section may contain anything we might want to do, to manipulate the source code before building it. System Syzygy makes an assumption about where to load some of the required libraries or assets. We can override this by simply patching the line in the source such that it now points into the directory the snap will be installed to. These are shell commands in a list. The snapcraftctl pull statement instructs snapcraft to do whatever is required to obtain the source as defined by the plugin and source lines above. Then we patch the source files as necessary. override-pull: | snapcraftctl pull sed -i 's|usr/lib/syzygy|/snap/syzygy/current|' src/gui/loader/path_linux.c override-build Most applications use standard build tools and common patterns for compiling and installing files. However sometimes they miss out steps we assume as part of a build. The developer may omit installation steps for example, assuming the user will simply run the application directly from the build folder. In the case of System Syzygy, we need to copy the game assets (fonts, sprites and background images) into the right place. We use the build-time variable SNAPCRAFT_PART_INSTALL as our target. Later in the snapcraft lifecycle the contents of this folder will be assimilated into the final snap. override-build: | snapcraftctl build mkdir $SNAPCRAFT_PART_INSTALL/data cp -a data/fonts data/sprites data/backgrounds $SNAPCRAFT_PART_INSTALL/data cp -a target/release/syzygy $SNAPCRAFT_PART_INSTALL/bin snapcraftctl set-version $(git -C ../src describe --tags | sed 's/v//') Finally we use git to extract the version number via git and assign that to the snap with the snapcraftctl statement. This bubbles up via the adopt-info line above to become the version number build-packages System Syzygy has a very small set of build dependencies outside those specified in the rust Cargo.toml. We list the packages which fulfil those build dependencies in the build-packages section of the part. These will be installed by snapcraft before the build starts. build-packages: - libsdl2-dev stage-packages Once built, the game leverages a few libraries to draw on the screen and play audio. If we didn’t specify these, the game would not work even if the libraries existed on the host OS. The snap is strictly confined, so cannot see any external libraries, so we list them here to bundle them with the game. We can discover which packages to add by running snapcraft without specifying any at all. Snapcraft will introspect the binaries shipped in the snap, and list a best-guess array of required packages. stage-packages: - libglu1-mesa - libsdl2-2.0-0 - libpulse0 Application The apps stanza is where we setup the environment and expose the binary inside the snap to the outside world. This includes ensuring the binary can find the GL drivers required to paint the game window, and extend the library search path to include the pulseaudio libraries for audio playback. In addition, the game has an internal environment variable which should point to the game data folder. We use the SNAP runtime environment variable to construct the correct path to the game files configured earlier. Finally we specify the required plugs to enable the game to draw on the screen, play audio, access the GPU via opengl, and suppress the screensaver. apps: syzygy: environment: SHELL: bash LC_ALL: C.UTF-8 SNAPCRAFT_ARCH_TRIPLET: ${SNAPCRAFT_ARCH_TRIPLET} __EGL_VENDOR_LIBRARY_DIRS: $SNAP/etc/glvnd/egl_vendor.d:$SNAP/usr/share/glvnd/egl_vendor.d LIBGL_DRIVERS_PATH: ${SNAP}/usr/lib/${SNAPCRAFT_ARCH_TRIPLET}/dri LIBVA_DRIVERS_PATH: ${SNAP}/usr/lib/${SNAPCRAFT_ARCH_TRIPLET}/dri LD_LIBRARY_PATH: "$SNAP/usr/lib/$SNAPCRAFT_ARCH_TRIPLET/pulseaudio" SYZYGY_DATA_DIR: "$SNAP/data" HOME: "$SNAP_USER_DATA" XDG_CACHE_HOME: "$SNAP_USER_DATA/.cache" command: syzygy plugs: - x11 - pulseaudio - opengl - screen-inhibit-control Summary Building and publishing snaps of applications written in Rust is pretty straightforward. The example above highlights how we can be flexible if the build system requires tweaking, or where an application needs minor patching. A non-graphical Rust app would be simpler than this example by virtue of not needing the SDL, GL and pulse libraries and environment configuration. Building and distributing a game written in any language is mostly similar to what’s outlined above. Only the part definition changes, the environment and plugs configuration will be mostly common. We welcome new games and applications in the Snap Store. The developers of snapd, snapcraft and the Snap Store hang out over on the snapcraft forum. Join us there if you have any questions or comments about this article or need assistance building a new snap.
  • Podcast Ubuntu Portugal: Ep 68 – Salvem a Amazónia
    Episódio 68 – Salvem a Amazónia. Uma viagem alucinante pelos recantos desse grande manto verde da América do Sul, com breves explicações sobre espécies e costumas dos nativos. Nada disso! Falámos sobre Ubuntu, AWS, Canonical, kernel e muito mais. https://www.thingiverse.com/thing:2288142 https://ubuntu.com/blog/canonical-announces-ubuntu-pro-for-amazon-web-services https://ubuntu.com/blog/introducing-the-ubuntu-aws-rolling-kernel https://docs.microsoft.com/en-us/azure-sphere/install/install-sdk-linux https://academy.findmore.pt/ (email de registo em formações: rh [at] findmore.pt ) https://fosdem.org https://www.meetup.com/ubuntupt/events/266888646/ https://github.com/PixelsCamp/talks https://pixels.camp/ https://www.humblebundle.com/books/data-science-no-starch-books?partner=PUP https://www.humblebundle.com/?partner=PUP Apoios Este episódio foi produzido e editado por Alexandre Carrapiço (Thunderclaws Studios – captação, produção, edição, mistura e masterização de som) contacto: thunderclawstudiosPT–arroba–gmail.com. Podem apoiar o podcast usando os links de afiliados do Humble Bundle, porque ao usarem esses links para fazer uma compra, uma parte do valor que pagam reverte a favor do Podcast Ubuntu Portugal E podem obter tudo isso com 15 dólares ou diferentes partes dependendo de pagarem 1, ou 8. Achamos que isto vale bem mais do que 15 dólares, pelo que se puderem paguem mais um pouco mais visto que têm a opção de pagar o quanto quiserem. Se estiverem interessados em outros bundles se acrescentarem no fim do link para qualquer bundle: ?partner=pup (da mesma forma como no link da sugestão) e vão estar também a apoiar-nos. Atribuição e licenças A música do genérico é: “Won’t see it comin’ (Feat Aequality & N’sorte d’autruche)”, por Alpha Hydrae e está licenciada nos termos da [CC0 1.0 Universal License](https://creativecommons.org/publicdomain/zero/1.0/). Este episódio e a imagem utilizada estão licenciados nos termos da licença: Attribution-NonCommercial-NoDerivatives 4.0 International (CC BY-NC-ND 4.0), cujo texto integral pode ser lido aqui. Estamos abertos a licenciar para permitir outros tipos de utilização, contactem-nos para validação e autorização.
  • Sean Davis: The New bluesabre.org
    Behold! And welcome to the new bluesabre.org! If you're a regular, you might have noticed that the site has had a bit of a facelift. After nearly a decade of publishing with Wordpress, I've moved to Ghost. And so far, I'm impressed.What's New?It's faster. Ghost is fast without any help, providing all the publishing tools I need and (from what I can tell) none that I don't. To further speed things up, I've optimized all of the images on my site for small download sizes and super-fast loading.It's more open. Ghost themes, powered by Handlebars templates,  are significantly easier to maintain than Wordpress themes, and you can really go far with the default Casper theme. I've forked the theme with a few minor enhancements, and made it available on GitHub. Meet Mouser.Left: standard or "light" theme on desktop; Right: "dark" theme on mobileIt's more consistent. Years of blogging included years of varying headers, layouts, and custom CSS. With this move, I'll standardized each page and post to make for a less jarring reading experience. Oh, and it now supports dark themes (as sent by your system or browser)./usr/bin/google-chrome-stable --force-dark-modePro tip: You can force Chrom(ium) to use dark mode in Linux with a commandline flag.It's easier for me. Goodbye plugins, hello everything I need to just write. With a nearly upstream theme, an unmodified core, and no plugins to worry about, I can worry about other things like development, blogging, mentorships, and community engagement. It all gets better from here.What's Next?With this site migration finally out of the way, it's time to get back to work on Xubuntu 20.04 LTS "Focal Fossa". There's a lot of work to do, and only a few months to do it. In particular, I'd like to get some appearance items out of the way...Greybird-Dark, the new dark variant of the standard Xfce theme, is in master, and is ready for an initial release.We should be able to add the Greybird themes to the gtk-common-themes snap package, enabling a consistent look for Snap packages in Xubuntu.Let me know what you think of the new site in the comments below. As for me, back to work I go!
  • Stephen Michael Kellat: In the aftermath...
    I should mention I survived surgery. Recovery is taking a while and I’m not having fun. These things pass with time. Election results have started to come in across the United Kingdom and initial reactions to them were not positive. I already read talk about expatriation from multiple quarters. That’s often not a good thing. In that respect I’ll put forward two notions. The first is to not overlook the EB-5 immigrant investor visa program in the USA. For its ”Targeted Employment Area” definition that has lower capital levels that you have to put forward…one area targeted is a “rural area”. Where am I again? If you can live with some occasional heavy snows, want to try to make a startup (regardless of type) in an area with top hospitals, and want to still have fairly easy access to Canada across Lake Erie frankly I could hook you up a realtor in my local area to get started. The cost of living in this part of Ohio is low and will probably look like what you always thought the mythical Ambridge of Radio 4’s The Archers would look like. As to the second option, go talk to the University of the South Pacific. They’re a multi-national institution in the Pacific that provides educational opportunities in several nation-states. They do good work. With the measles outbreak in the independent state of Samoa that has held back some education work while heroic efforts continue to contain the outbreak. The Pacific is a beautiful place to live and if I had fewer family obligations I would be heading back that way to live. If you can’t handle the new Brexit reality there are new frontiers in paradise to explore for living and working. Again, these are just notions. On my part I managed to finish up a patchset to Xubuntu offline documentation while I’ve been recovering from surgery. I know I have political turmoil here stateside but it doesn’t hold me back from helping make Xubuntu fabulous during the Focal Fossa cycle. My pain is a little bit more direct at the moment…

Agencia nacional de promoción científica y tecnológica

Internacional de la educación - Últimas noticias sobre Education Unions Worldwide

Internacional de la educación - Últimas noticias sobre Education Unions Worldwide

Education International es la federación de organizaciones que representan a más de 30 millones de profesores y otros trabajadores de la educación, a través de más de 400 organizaciones miembros en más de 170 países y territorios.