January 4th, 2017 by dbakevlar

How was 2016 for me?

It was a surprisingly busy year-  blogging, speaking, working and doing.

I posted just under 100 posts to my blog this year.  After I changed jobs, the “3 per week” quickly declined to “4 per month” after I was inundated with new challenges and the Delphix learning curve.  That will change for 2017, along with some new initiatives that are in the works, so stay tuned.

For 2016, the most popular posts and pages for my website followed a similar trend from the last year.  My emulator for RPI is still a popular item and I have almost as many questions on RPI as I do WIT-  Raspberry Pi is everywhere and you’ll see a regained momentum from me with some smart home upgrades.

My readers for 2016 came from just about every country.  There were only a few that weren’t represented, but the largest numbers were from the expected:

I also write from time to time on Linked in.  Linked in has become the home for my Women in Technology posts and its lead me to receive around 30 messages a week from women looking for guidance, sharing their stories or just reaching out.  I appreciate the support and the value its provided to those in the industry.

RMOUG Conference Director- No Escape!

The 2016 conference was a great success for RMOUG, but much of it was due to budget cuts and changes that were made as we went along and addressed trends.  I’ve been collecting the data from evaluations and it really does show why companies are so interested in the value their data can provide them.  I use what I gather each year to make intelligent decisions about where RMOUG should take the conference direction each year-  what works, what doesn’t and when someone throws an idea out there, you can either decide to look into it or have the data to prove that you shouldn’t allocate resources to an endeavor.

A New Job

I wasn’t into the Oracle cloud like a lot of other folks.  It just wasn’t that interesting to me and felt that Oracle, as much as they were putting into their cloud investment, deserved someone who was behind it.  I’d come to Oracle to learn everything I could about Oracle and Enterprise Manager and an on-premise solution as it was, it wasn’t in the company focus.  When Kyle and I spoke about an opportunity to step into a revamped version of his position at Delphix, a company that I knew a great deal about and admired, it was a no-brainer.  I started with this great, little company in June and there are some invigorating initiatives that I look forward to becoming part of for 2017!

2 Awards

In February, I was awarded RMOUG’s Lifetime achievement award.  I kind of thought this would mean I could ride off in the sunset as the conference director, but as my position ended at Oracle, which had been a significant fight to keep me managing the conference as an Oracle employee, (transitioning me to a non-voting member to keep within the by-laws) not many were surprised to see me take on a sixth year of managing the conference.

In April I was humbly awarded the Ken Jacobs award from IOUG.  This is an award I’m very proud of, as Oracle employee’s are the only ones eligible and I was awarded it in just the two years I was employed at the red O.

3 Makers Events

I haven’t had much time for my Raspberry Pi projects the last number of months, but it doesn’t mean I don’t still love them.  I gained some recognition as 2nd ranking in the world for RPI klout score back in July, which took me by surprise.  I love adding a lot of IOT stories into my content and it had caught the attention of social media engines.  Reading and content is one thing, but it was even more important to do- I had a blast being part of the impressive Colorado’s Maker Faire at the Denver Museum of Nature and Science earlier in 2016.  I also was part of two smaller makers faires in Colorado, allowing me to discuss inexpensive opportunities for STEM education for schools using Raspberry Pis, Python coding and 4M kits.

Speaking Engagements

Even though I took a number of months off to focus on Delphix initiatives, I still spoke at 12 events and organized two, (Training Days and RMOUG’s QEW.)

February:  RMOUG– Denver, CO, (Director and speaker)

March: HotSos– Dallas, CO, (Keynote)

April: IOUG Collaborate– Las Vegas, NV

May: GLOC– Cleveland, OH, NoCOUG– San Jose, CA

June: KSCOPE– Chicago, IL

July: RMOUG Quarterly Education Workshop– Denver, CO, (Organizer)

September: Oracle Open World/Oak Table World– San Francisco, CA

October: UNYOUG– Buffalo, NY, Rocky Mountain DataCon & Denver Testing Summit–  Denver, CO

November: MOUS– Detroit, MI, (Keynote) ECO– Raleigh, NC

New Meetup Initiatives and Growth

I took over the Denver/Boulder Girl Geek Dinners meetup last April.  The community had almost 650 members at the time and although it wasn’t as big as the Girls Develop It or Women Who Code, I was adamant about keeping it alive.  Come the new year and thanks to some fantastic co-organizers assisting me, (along with community events in the technical arena) we’re now on our way to 1100 members for the Denver/Boulder area.

The Coming Year

I’m pretty much bursting with anticipation due to all that is on my plate for the coming year.  I know the right hand side bar is a clear indication that I’ll be speaking more, meaning more travel and a lot of new content.  With some awesome new opportunities from Delphix and the organizations I’m part of, I look forward to a great 2017!

 

Posted in DBA Life, Oracle Tagged with: , , ,

August 31st, 2016 by dbakevlar

The following issues in this post are common challenges experienced by Raspberry Pi, (RPI) owners and I’m consistently frustrated with the ridiculous answers out on the internet for them!  No fear, trusty Raspains!  I’m here to offer you the correct and [pretty easy] answers that will actually fix the problems and won’t lead you to searching for hours on the internet.

We techies know that no matter what, going back to the configuration at the OS, (operating system) level is just the best way to fix problems.  Raspberry Pi issues are no different, so read on…

Keyboard Set To A Different Language

If you haven’t figured out by now, your RPI, although globally distributed, was built in the UK, which means that the keyboard is set to “gb” for Great Britain.  With that comes the pound sign when the shift is depressed and you then press the number 3, among other key reassignments.  Yes, there is a configuration option in the user interface and yes, it will fail to correct the issue, even after you’ve rebooted.

There is a simple configuration file update, so let’s just fix this the proper way.  Using Vi, Vim, Nano or another command line editor, edit the following file, (I’m a DBA, so Vi is my trusty editor choice):

sudo vi /etc/default/keyboard
# KEYBOARD CONFIGURATION FILE

# Consult the keyboard(5) manual page.

XKBMODEL="pc105"
XKBLAYOUT="gb"
XKBVARIANT=""
XKBOPTIONS=""

BACKSPACE="guess"

Update the XKBLAYOUT to “us” from “gb”, (or to the keyboard layout language you need it set to.)

Save the changes and cycle the RPI.  There, all fixed.

Display Upside Down In TouchScreen Display

The 7 and 10 inch touchscreen displays allow the user to have a more portable RPI, (non-dependent upon an HDMI monitor or TV) or mouse.  I also prefer it, as the low-powered option allows me the opportunity to power my RPI, monitor, et. all on an 20800MAH mobile charger battery, walking away from a standard power source completely.

The challenge is that when you position the RPI into the case that makes this all so easy to work with, the display is upside down.  No, there’s nothing wrong with your screen or your installation, the problem is the configuration for the RPI.  This can be easily fixed, again, with a simple update to a configuration file and power cycle of the RPI.

This time, edit the following:

sudo vi /boot/config.txt

add the following line to the bottom of the file:

lcd_rotate=2

The file should now look something similar to this:

# Enable audio (loads snd_bcm2835)

dtparam=audio=on

# Correct display orientation

lcd_rotate=2

Save the changes and cycle the RPI.  Again, all fixed…. 🙂

Inconsistent Wifi Connectivity, (Seen In Wheezy, Not Jessie OS)

If you have challenges with this, check out my blog post that goes into causes and fixes here.

Hopefully people won’t be looking all over the internet for these fixes and just find this post instead….  As I think of other fixes, I’ll continue to update this blog post, so check back!

 

Posted in Raspberry Pi Tagged with: , , ,

June 8th, 2016 by dbakevlar

So there are some cool features that are built into the GPIOZero library/module.  One of the challenges I think many of us that have a lot of projects that we want to work on, is that we end up having to translate it to the version of RPI that we just happen to be working on or have available.  This can be frustrating when the code is available without us having to rewrite it all in the libraries available for the hardware we just happen to plug-in.

So GPIO the old way with photocells is a bit involved:

GPIO.setmode(GPIO.BCM)

 def RCtime (RCpin):
 reading = 0
 GPIO.setup(RCpin, GPIO.OUT)
 GPIO.output(RCpin, GPIO.LOW)
 time.sleep(0.1)

 GPIO.setup(RCpin, GPIO.IN)

while (GPIO.input(RCpin) == GPIO.LOW):
 reading += 1
return reading

while True:
print RCtime(18) # Read RC timing using pin #18
<and on and on..and we haven't even got to the buzzer, etc....>

If we use the GPIOZero library, it’s much simpler due to a module written for physical computing with photocells:

  from gpiozero import LightSensor, Buzzer
  from time import sleep

  ldr = LightSensor(18)  
  buzzer = Buzzer(4) 

  while True:
      sleep(0.1)
      if ldr.value < 0.5:  
          buzzer.on()
          sleep(30) 
      else:
          buzzer.off()

LightSensor was what I wanted and it was already available in the GPIOZero library.

Needless to say, this happened to me as I was working on a new project.  I was at the Starbucks and pulled out my Raspberry Pi, B+ Release 2, that has the touchscreen built in,  plugged it in and went to town.  With this configuration, I only require one plug, (the monitor works off a battery) and it’s very portable when I’m out and about.

So what did I do when I saw the module to call was GPIOZero and I was on the Raspberry Pi 2?  I installed the GPIOZero library, of course!

sudo apt-get install python3-gpiozero

I keep the images updated with the latest, so it was a no-brainer to add this to it.

20160607_160907

If you don’t have what you want for the model you are working on, why not just try to install what you need?

raspberry

Easy-peasy, forty pin GPIO library done.  So there, Raspberry Pi Versions!

Posted in Raspberry Pi Tagged with: , ,

March 22nd, 2016 by dbakevlar

This morning, after someone added SQL Developer to a Raspberry Pi 3, Jeff Smith pinged me and the question was posed, as it often is, can you run Oracle database server on a Raspberry Pi, (RPI)?

rpi1

The answer is no, you can’t, as there are no binaries for the ARM processor platform that you can compile, so its nothing to do with power, (although it is low powered for a very good reason…) but really due to the processor type.  Hopefully that’ll stop those of you building out massive RPI clusters in hopes of creating their own home servers with these inexpensive computers.

dontgotthis

With this said, you can run a database, so to show how easy this is, I’ll show you how to install and work with an installation of SQLite on a Raspberry Pi Zero, the version that’s less than 1/2 the size of a credit card.

20160321_184204

Other people have a beer and take the evening off.  Me?  I have a beer and start installing stuff on single board computers… 🙂

Install SQLite

Installation is easy.  Ensure you have the latest update, so if you haven’t run your update in awhile, run that first from the command line.  Remember you must have root or sudo privileges to perform these tasks:

$sudo apt-get update

Once complete and you know you’re up to date, then simply get and install SQLite:

$sudo apt-get install sqlite3

20160321_184316

Create a Database

Let’s create a database:

$sqlite3 mydb.db

This creates the database using the mydb.db file as the logical container for it.

Note: If you need help at any time, you can type in .help or .show from the sqlite prompt and it will display information similar to man pages in linux.  It’s very helpful and user friendly.

If you’re out there comparing features, about to complain about all the ways that SQLite is NOT Oracle, well, you can stop right here.  On the support page for SQLite is the quote:

Small. Fast. Reliable.  Choose Any Three.

SQLite isn’t trying to be Oracle, but if you need a database and you’d like to put one on a RPI, this is the one to use that is small, fast and reliable.

Working with SQLite

Of course there are some syntax differences and SQLite has most standard SQL syntax at it’s disposal. Remembering to type BEGIN for the implicit transactions and to COMMIT after each is commonly the biggest challenge.  This includes for data dictionary objects, (aka ddl).

As this isn’t a full RDBMS client/server database, there aren’t any roles or privileges that reside outside of the OS level privileges to the database file.  This database works very well in the support of RPI projects and this is the goal of what I’m hoping to demonstrate here.

So let’s start by just creating a table and adding a few rows.

begin;
create table tbl1(col1_id text, date_c1 date, time_c1 time, range_1 numeric);
commit;

Now you can insert rows into your new table:

begin:
insert into tbl1 values('user1', date('now'), time('now'), 12);
insert into tbl1 values('user2', date('now'), time('now'), 7);
insert into tbl1 values('user3', date('now'), time('now'), 20);
commit;

You can then select from your new table and the row(s) will be returned, separated by the pipe symbol:

select * from tbl1 where col1_id='user2';
user2|2016-03-22|00:12:237

 

So there you have it.  Database software installed-  check.  Database created- check.  Object created and rows added- check.  Table queried- check.  All done in less than five minutes.

If you’d like to learn more, you can check out SQLite’s home page.

Posted in Raspberry Pi Tagged with: , ,

January 23rd, 2016 by dbakevlar

I’d had some difficulty with WiFi consistently staying connected on each of my Raspberry Pi units.  I’d had a little time to look into it, but no research had offered an answer and the only fixes I’d come up with was a shell script I wrote to force a restart of the NIC, which helped some, but no improvement when I added an antenna, (I considered all the wires, sensors, etc. might be interfering with the signal.)

Finally this weekend, started to dig around and noted that although in the user interface, it showed both connections to my home WiFi and my Smartphone as enabled, the /etc/wpa-supplicant/wpa_supplicant.conf showed the following for each entry:

disabled=1

I couldn’t find any support documentation that backed up the theory that there was a mismatch in what the GUI stated vs. the configuration file that is the backbone of the settings, but with all the other data involved, it made sense that this should be set to either:

enabled=1

Or

disabled=0

So, I took a deep breath and updated one WiFi connection entry in the file with “disabled=0”, saved and rebooted.

Sure enough, my connection to my home WiFi stayed connected and consistent to the internet.  No more disconnects and no more challenges with connectivity.

Another change I made afterwards, which is backed up with support from multiple resources is editing the /etc/network/interfaces configuration file.  Scan the file and look for an entry that says:

auto wlan0

If you don’t see this entry, add a line to the top of the file, (you should see at least one other line starting with “auto” so add a line under that one if there is), save and reboot.  This will update your RPI to start the WiFi NIC automatically, which will then in turn, connect to your WiFi network.

I’ve made this change to four of my five RPI, (the PiZero Jessie load doesn’t experience this issue and was what triggered that it was a software issue with Wheezy and not a hardware problem….)

rpi3

Kellyn-1, Frustration-0

Posted in Raspberry Pi Tagged with: , ,

October 5th, 2015 by dbakevlar

So as I prepare for next week, coaching with some other great folks with the Oracle Education Foundation using the Raspberry Pi, I wanted to add some fun music into my code to work with our motor mascot project.  To do so, you need a few things:

  1.  A small speaker with a 3.5 plugin to the Raspberry Pi.  I have a small, round, rechargeable one that I love.
  2. Have an FM radio station that streams music that you can use in your code.
  3. Install and use music libraries

If you haven’t done so recently, run an update on your Rpi:

sudo apt-get update

Now that you know your Rpi is up to date, let’s get the MPlayer software:

sudo apt-get install mplayer mplayer-gui alsa-base alsa-utils pulseaudio mpg123

If you have your Rpi hooked into a small monitor, like I do, then don’t be surprised if the mplayer application fails due to the display constraints.  The rest of the code and librariesiare what we’re really interested in, so not a big deal.

Once it’s finished, reboot your Rpi:

sudo reboot

Once it’s up, lets do a bit of code.  There are a number of online FM URL’s that can be used with the mplayer, so it’s really a lot of fun.  You must have WiFi access configured on your Rpi for this to run:

import system

os.system(“mplayer -playlist http://tunein.com/radio/1FM—Absolute-Top-40-s48967/”)

Save the file as play_music.py

To run this, simply type in:

sudo python3 play_music.py

I’ve updated my script to do a few things, including blinking lights and spinning motors, but the video gives you at least a taste of the motor and the music!

Have a great Firday, folks!

Posted in Raspberry Pi Tagged with: ,

  • Facebook
  • Google+
  • LinkedIn
  • Twitter